package net.csdn.business.discuss.api.model.vo;

import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.csdn.business.discuss.common.constant.CommonConstants;
import net.csdn.business.discuss.common.dto.SuperVO;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;


/**
 * @ClassName DiscussVO
 * @Description Discuss对象VO
 * @Author zhangyl
 * @Date 2023/7/18 11:09
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DiscussVO extends SuperVO
{


    /** 组织ID/仓库ID； */
    @JsonIgnore
    private String sourceId;

    /** 1:组织；2:仓库 */
    @JsonIgnore
    private Integer sourceType;

    /** serialNumber */
    private Integer serialNumber;

    /** 标题 */
    private String title;

    /** 内容 */
    private String content;

    /** mdContent */
    private String mdContent;

    /** 是否锁定： 0-否; 1-是 */
    private Integer isLock;

    /** 是否置顶： 0-否; 1-是 */
    private Integer isPin;

    /** 是否在分类中置顶： 0-否; 1-是 */
    private Integer isCategoryPin;

    /** 是否被关闭： 0-否; 1-是 */
    private Integer isClosed;

    /** 是否采纳回答： 0-否; 1-是 */
    private Integer isAnswered;

    /** discuss关联的标签id集合 */
    private List<String> label;

    /** 审核状态 */
    private Integer auditStatus;

    /** 置顶时间 */
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date pinDate;

    /** 所属分类置顶时间 */
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date pinCategoryDate;

    /** 关闭时间 */
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date closedDate;

    /** 评论总数 */
    private Integer commentTotal;

    /** 回复总数 */
    private Integer replyTotal;

    /** 点赞总数 */
    private Integer likeTotal;

    /** 是否点赞 */
    private Boolean isLike=false;

    /** 是否点赞 */
    private Boolean isVote=false;

    /** 投票选项id */
    private String optionId;

    /** 讨论所属分类id */
    private String categoryId;

    /** 讨论采纳的回复id */
    private String answerId;

    /** 投票内容 */
    private DiscussVoteVO question;

    /** 投票选项 */
    private LinkedList<DiscussVoteOptionVO> options;

    private DiscussCommentVO answerInfo;

    private DiscussCategoryVO category;
}
